<?php
	
	class MeusrelatoriosController extends AppController {
    	public $helpers = array('Html', 'Form');
    	public $uses = array('Relatorio', 'User', 'Comentario');

    	public function index() {
	        $this->set('relatorios', $this->Relatorio->find('all',  array('conditions' => array('user_id' => $this->Session->read('Auth.User.id'))))); 
	    }
	    
	    public $components = array('RequestHandler');
	    
	    function descargar($id = null){
		    if (!$id) {
		       throw new NotFoundException(__('Nenhum relatório foi encontrado para geração do pdf'));
		    }
		    Configure::write('debug',2);//0 como opção
		    $resultado = $this->Relatorio->findById($id); 
		    $this->set("datos_pdf",$resultado);              
		    $this->layout = 'pdf';
		    $this->render();
		} 

	    public function adicionar() {
	        if ($this->request->is('post')) {
	            $this->Relatorio->create();
	            if ($this->Relatorio->save($this->request->data)) {
	                $this->Session->setFlash(__('Seu relatório foi salvo com sucesso'));
	                return $this->redirect(array('action' => 'index'));
	            }
	            $this->Session->setFlash(__('Não foi possível salvar seu relatório, tente novamente'));
	        }
    	}

    	public function editar($id = null) {
		    if (!$id) {
		        throw new NotFoundException(__('Nenhum relatório foi encontrado'));
		    }

		    $rel = $this->Relatorio->findById($id);
		    if (!$rel) {
		        throw new NotFoundException(__('Nenhum relatório foi encontrado'));
		    }

		    if ($this->request->is(array('post', 'put'))) {
		        $this->Relatorio->id = $id;
		        if ($this->Relatorio->save($this->request->data)) {
		            $this->Session->setFlash(__('Seu relatório foi atualizado'));
		            return $this->redirect(array('action' => 'index'));
		        }
		        $this->Session->setFlash(__('Não foi possível atualizar o seu relatório, tente novamente'));
		    }

		    if (!$this->request->data) {
		        $this->request->data = $rel;
		    }
		}

		public function deletar($id) {
		    if ($this->request->is('get')) {
		        throw new MethodNotAllowedException();
		    }

		    if ($this->Relatorio->delete($id)) {
		        $this->Session->setFlash(
		            __('O relatório com id %s foi deletado.', h($id))
		        );
		        return $this->redirect(array('action' => 'index'));
		    }
		}

		public function ver($id = null) {
	        if (!$id) {
	            throw new NotFoundException(__('Relatório inválido'));
	        }

	        $rel = $this->Relatorio->findById($id);
	        $options=array(             
	        	'fields' => array('Comentario.*', 'User.*'),
	        	'joins' =>
	        	array(
	        		array(
	        			'table' => 'users',
	        			'alias' => 'User',
	        			'type' => 'INNER',
	        			'conditions'=> array('User.id = Comentario.userID AND Comentario.relatorioID = ' . $id)
	        			)
	        	));
	        $comentarios = $this->Comentario->find('all', $options);
	        if (!$rel) {
	            throw new NotFoundException(__('Relatório inválido'));
	        }


	        if ($this->request->is('post')) {
	            $this->Comentario->create();
	            if ($this->Comentario->save($this->request->data)) {
	                $this->Session->setFlash(__('Seu comentário foi salvo com sucesso'));
	                return $this->redirect(array('action' => 'index'));
	            }
	            $this->Session->setFlash(__('Não foi possível salvar seu comentário, tente novamente'));
	        }


	        $this->set('relatorio', $rel);
	        $this->set('comentarios', $comentarios);
	    }
	}

?>
